/****************************************************************************

Force Engine v0.5

Creado: 23/03/09
Clase: Node.h
Hecho by: German Battiston AKA Melkor

****************************************************************************/

//---------------------------------------------------------------------------
#ifndef NODE_H
#define NODE_H
//---------------------------------------------------------------------------
#include <vector>
#include "INode.h"
//---------------------------------------------------------------------------
class FORCEENGINE_API Node: public INode
{
public:

	Node();
	Node(Graphics &rkGraphics);
	~Node();

	bool Initialize(std::string szName, INode * pkParentNode = NULL);

	const BVH * Update();

	bool AddChildNode(INode * pkChildNode);
	void RemoveChildNode(INode * pkChildNode);

	int CountLowerNodes();

	bool IsRootNode();


	void SetName(std::string szName);
	INode * GetNodeByName(const char* szSearchName);

	void Draw();

private:	
	std::vector<INode*> m_vChildren;
};

//---------------------------------------------------------------------------

#endif /*--- NODE_H ---*/

//---------------------------------------------------------------------------